Python用語集 iterator
データの流れを表現するオブジェクト
イテレータの __next__() メソッドを繰り返し呼び出す (または組み込み関数 next() に渡す) と、流れの中の要素を一つずつ返します。
データがなくなると、代わりに StopIteration 例外を送出します。
イテレータは、そのイテレータオブジェクト自体を返す __iter__() メソッドを実装しなければならないので、イテレータは他の iterable を受理するほとんどの場所で利用できます。
(原文) Iterators are required to have an __iter__() method that returns the iterator object itself so every iterator is also iterable and may be used in most places where other iterables are accepted.
「すべてのiteratorはiterableである」
「(iteratorの)他のiterableが受理されるほとんどの場所で使われるかもしれない」(使われるようにしてもよい)
(list のような) コンテナオブジェクトは、自身を iter() 関数にオブジェクトに渡したり for ループ内で使うたびに、新たな未使用のイテレータを生成します。